home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / asm / mach-es7000 / mach_wakecpu.h < prev   
C/C++ Source or Header  |  2005-10-13  |  1KB  |  59 lines

  1. #ifndef __ASM_MACH_WAKECPU_H
  2. #define __ASM_MACH_WAKECPU_H
  3.  
  4. /* 
  5.  * This file copes with machines that wakeup secondary CPUs by the
  6.  * INIT, INIT, STARTUP sequence.
  7.  */
  8.  
  9. #ifdef CONFIG_ES7000_CLUSTERED_APIC
  10. #define WAKE_SECONDARY_VIA_MIP
  11. #else
  12. #define WAKE_SECONDARY_VIA_INIT
  13. #endif
  14.  
  15. #ifdef WAKE_SECONDARY_VIA_MIP
  16. extern int es7000_start_cpu(int cpu, unsigned long eip);
  17. static inline int
  18. wakeup_secondary_cpu(int phys_apicid, unsigned long start_eip)
  19. {
  20.     int boot_error = 0;
  21.     boot_error = es7000_start_cpu(phys_apicid, start_eip);
  22.     return boot_error;
  23. }
  24. #endif
  25.  
  26. #define TRAMPOLINE_LOW phys_to_virt(0x467)
  27. #define TRAMPOLINE_HIGH phys_to_virt(0x469)
  28.  
  29. #define boot_cpu_apicid boot_cpu_physical_apicid
  30.  
  31. static inline void wait_for_init_deassert(atomic_t *deassert)
  32. {
  33. #ifdef WAKE_SECONDARY_VIA_INIT
  34.     while (!atomic_read(deassert));
  35. #endif
  36.     return;
  37. }
  38.  
  39. /* Nothing to do for most platforms, since cleared by the INIT cycle */
  40. static inline void smp_callin_clear_local_apic(void)
  41. {
  42. }
  43.  
  44. static inline void store_NMI_vector(unsigned short *high, unsigned short *low)
  45. {
  46. }
  47.  
  48. static inline void restore_NMI_vector(unsigned short *high, unsigned short *low)
  49. {
  50. }
  51.  
  52. #if APIC_DEBUG
  53.  #define inquire_remote_apic(apicid) __inquire_remote_apic(apicid)
  54. #else
  55.  #define inquire_remote_apic(apicid) {}
  56. #endif
  57.  
  58. #endif /* __ASM_MACH_WAKECPU_H */
  59.